.fixed-buttons {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  @include z-index(1);
}

.fixed-button {
  font-size: 1rem;
  line-height: 1.5rem;
  padding: 0.5rem 0.625rem;
  color: darken($global-font-secondary-color, 10%);
  background-color: $header-background-color;
  @include border-radius(1.25rem);
  @include transition(color 0.4s ease);
  @include blur;
  @extend .print-d-none;

  &:hover,
  &:active {
    color: $global-font-color;
    cursor: pointer;
  }

  &:active,
  &:focus,
  &:hover {
    outline: none;
  }

  [data-theme='dark'] & {
    color: $global-font-secondary-color-dark;
    background-color: $header-background-color-dark;

    &:hover,
    &:active {
      color: $global-font-color-dark;
    }
  }
}

.back-to-top {
  overflow: hidden;
  position: relative;
  // Ring stroke width
  #{$rootPrefix}b2t-stroke: 0.5rem;
  // Ring background color
  #{$rootPrefix}b2t-bg: #{$global-border-color};
  // Progress color
  #{$rootPrefix}b2t-prog: var(#{$rootPrefix}success);
  // dasharray = circumference = 2πr
  // dashoffset = circumference * (1 - scrollPercent / 100)
  #{$rootPrefix}b2t-dasharray: 314.15;

  [data-theme='dark'] & {
    #{$rootPrefix}b2t-bg: #{$global-border-color-dark};
    #{$rootPrefix}b2t-prog: #{$global-font-color-dark};
  }

  // SVG circular progress ring
  svg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    // Rotate to start from top
    transform: rotate(-90deg);
  }

  .bg {
    fill: none;
    stroke: var(#{$rootPrefix}b2t-bg);
    stroke-width: var(#{$rootPrefix}b2t-stroke);
  }

  // Progress ring
  .progress {
    fill: none;
    stroke: var(#{$rootPrefix}b2t-prog);
    stroke-width: var(#{$rootPrefix}b2t-stroke);
    stroke-linecap: round;
    stroke-dasharray: var(#{$rootPrefix}b2t-dasharray);
    stroke-dashoffset: calc(var(#{$rootPrefix}b2t-dasharray) * (1 - var(#{$rootPrefix}b2t-progress, 0) / 100));
    transition: stroke-dashoffset .1s linear;
  }
}
